package com.micro.modual.extension;

import com.google.common.base.Joiner;
import com.micro.common.MicroConstant;
import com.micro.common.biz.GeneratorCodeUtil;
import com.micro.common.util.SnowFlakeUtil;
import com.micro.modual.entity.GoodsSpec;
import com.micro.modual.model.bo.goodsspec.GoodsSpecBO;

import java.util.Date;

/**
 * <h1>商品规格表 属性规格 延展类</h1>
 *
 * @author LevelCoder
 * @version V1.0.0
 * @email LevelCoder@126.com
 * @date 2020-08-04 00:23:27
 */
public class GoodsSpecExtension {

    /**
     * <h2>转换: 商品规格表 属性规格 新增</h2>
     *
     * @param goodsSpecBO {@link GoodsSpecBO} 商品规格表 属性规格 新增/修改 请求对象
     * @return {@link GoodsSpec} 商品规格表 属性规格
     */
    public static GoodsSpec converAddGoodsSpec(GoodsSpecBO goodsSpecBO) {
        GoodsSpec goodsSpec = new GoodsSpec();
        goodsSpec.setId(SnowFlakeUtil.getId());
        goodsSpec.setSpecName(goodsSpecBO.getSpecName());
        goodsSpec.setSpecOptions(Joiner.on(",").join(goodsSpecBO.getSpecOptions()));
        goodsSpec.setSpecSort(goodsSpecBO.getSpecSort());
        goodsSpec.setTemplateCode(goodsSpecBO.getTemplateCode());
        goodsSpec.setCreateTime(new Date());
        return goodsSpec;
    }

    /**
     * <h2>转换: 商品规格表 属性规格 修改</h2>
     *
     * @param goodsSpecBO {@link GoodsSpecBO} 商品规格表 属性规格 新增/修改 请求对象
     * @return {@link GoodsSpec} 商品规格表 属性规格
     */
    public static GoodsSpec converEditGoodsSpec(GoodsSpecBO goodsSpecBO) {
        GoodsSpec goodsSpec = new GoodsSpec();
        goodsSpec.setId(goodsSpecBO.getId());
        goodsSpec.setSpecName(goodsSpecBO.getSpecName());
        goodsSpec.setSpecOptions(Joiner.on(",").join(goodsSpecBO.getSpecOptions()));
        goodsSpec.setSpecSort(goodsSpecBO.getSpecSort());
        goodsSpec.setTemplateCode(goodsSpecBO.getTemplateCode());
        goodsSpec.setUpdateTime(new Date());
        return goodsSpec;
    }
}
